【翻译】SpringBoot 虚拟线程 VS WebFlux :JWT 验证和 MySQL 查询的性能比较
摘要
在基准测试中,Spring WebFlux 在验证 MYSQL 数据库中的 JWT 令牌时,比使用虚拟线程的 Spring Boot 快 57%。看起来我们没有从使用虚拟线程中获得任何好处……
介绍
在对一系列技术(包括 Node.js、Deno、Bun、Rust、Go、Spring、Python 等)在简单的“hello world”场景中的性能进行广泛评估后,我逐渐收到了很多的反馈。尽管这些文章获得了不少人的赞同,但常有读者反映,它们都没有直接涉及实际业务的用例。读者们敦促我将分析扩展到更实际的场景。令人惊讶的是,这些文章依然吸引了大量的阅读量。尽管如此,这一点意见确实有其合理性。作为起点,“hello world” 是理想的,但它远不能代表现实世界的复杂性。
现实实际用例
本文是我们持续系列的一部分,旨在通过现实世界的场景来剖析各种技术。在这个具体案例中,我们将深入探讨以下常见的用例:
- 从 authorization header提取 JWT。
- 验证 JWT 并从其claims中提取用户的电子邮件。
- 使用提取的电子邮件执行 MySQL 查询。
- 最后返回用户的记录。
尽管这个场景看起来简单,但它代表了在 web 开发领域中经常遇到的一个实际挑战。